package com.banyou.banyou.customviews;

import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.animation.DecelerateInterpolator;
import android.widget.LinearLayout;

/**
 * ----------Dragon be here!----------/
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　　┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　┃
 * 　　┃　　　　　　　┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛
 * 　　　　┃　　　┃神兽保佑
 * 　　　　┃　　　┃代码无BUG！
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ━━━━━━神兽出没━━━━━━
 * 项目名称：WheelMedical
 * 包名:com.yyxk.wheelmedical.customview
 * 类描述：
 * 创建人：Random
 * 创建时间：13:27
 * 修改人：Random
 * 修改时间：13:27
 * 修改备注：
 */
public class TouchableLinearLayout extends LinearLayout {
    public TouchableLinearLayout(Context context) {
        super(context);
    }

    public TouchableLinearLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public TouchableLinearLayout(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public TouchableLinearLayout(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }

    private AnimatorSet animatorSet = new AnimatorSet();//组合动画
    private AnimatorSet animatorBackSet = new AnimatorSet();//组合动画

    @Override
    public boolean onTouchEvent(final MotionEvent event) {

        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
//                motionDownAnim();
                break;
            case MotionEvent.ACTION_UP:
//                motionUpAnim();
                break;
        }
//        if(event.getY()>=(getBottom()-getTop())||event.getY()<=0){
//            motionUpAnim();
//        }
        return super.onTouchEvent(event);
    }

    private void motionDownAnim() {
        ObjectAnimator scaleX = ObjectAnimator.ofFloat(this, "scaleX", 1f, 0.7f);
        ObjectAnimator scaleY = ObjectAnimator.ofFloat(this, "scaleY", 1f, 0.7f);
        animatorSet.setDuration(200);
        animatorSet.setInterpolator(new DecelerateInterpolator());
        animatorSet.play(scaleX).with(scaleY);//两个动画同时开始
        animatorSet.start();
    }

    private void motionUpAnim() {
        ObjectAnimator scaleBackX = ObjectAnimator.ofFloat(this, "scaleX", 0.7f, 1f);
        ObjectAnimator scaleBackY = ObjectAnimator.ofFloat(this, "scaleY", 0.7f, 1f);
        animatorBackSet.setDuration(200);
        animatorBackSet.setInterpolator(new DecelerateInterpolator());
        animatorBackSet.play(scaleBackX).with(scaleBackY);//两个动画同时开始
        animatorBackSet.start();
    }

}
